*
* Copyright (c) 2020 NVI, Inc.
*
* This file is part of VLBI Field System
* (see http://github.com/nvi-inc/fs).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
      integer*2 function iishftc(iar,inum,ifield)
      implicit none
      integer*2 iar
      integer inum,ifield
c
      integer*2 imask,ibits,imask2
c
      imask=not(lshift(not(0),ifield))
      ibits=and(imask,iar)
c
      if(inum.gt.0) then
        imask2=not(lshift(not(0),inum))
        ibits=or(lshift(ibits,inum),and(rshift(ibits,16-inum),imask2))
      else
        imask2=not(lshift(not(0),16+inum))
        ibits=or(lshift(ibits,16+inum),and(rshift(ibits,-inum),imask2))
      endif

      iishftc=or(and(not(imask),iar),ibits)
c
      return
      end
